/*
 * @Author: zdc 3215400595@qq.com
 * @Date: 2023-08-06 17:47:50
 * @LastEditors: zdc 3215400595@qq.com
 * @LastEditTime: 2023-08-06 17:47:50
 * @FilePath: /Logs_System/message.hpp
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// 定义日志消息类，进行日志中间信息的存贮

// ◦ 时间：描述本条⽇志的输出时间。
// ◦ ⽇志等级：描述本条⽇志的等级。
// ◦ ⽇志⽂件名：描述本条⽇志在哪个源码⽂件中输出的。
// ◦ ⽇志⾏号：描述本条⽇志在源码⽂件的哪⼀⾏输出的。
// ◦ 线程ID：描述本条⽇志是哪个线程输出的。
// ◦ ⽇志主体的数据：本条⽇志的有效载荷数据。
// ◦ 日志器名称

#ifndef __M_MESSAGE_H__
#define __M_MESSAGE_H__
#include "util.hpp"
#include "level.hpp"
#include <iostream>
#include <string>
#include <thread>
namespace tong_log
{
    struct LogMsg
    {
        time_t _ctime;          // 日志产生的时间戳
        LogLevel::value _level; // 日志等级
        size_t _line;           // 行号
        std::string _file;      // 文件名
        std::thread::id _tid;   // 线程id
        std::string _logger;    // 日志器

        std::string _payload; // 日志主体

        LogMsg(LogLevel::value level,
               size_t line,
               std::string file,
               std::string logger,
               std::string msg) : _file(file),
                                  _payload(msg),
                                  _level(level),
                                  _line(line),
                                  _logger(logger),
                                  _ctime(util::Date::now()),
                                  _tid(std::this_thread::get_id())
        {}
    };

}
#endif